package com.ywyself.common.pool;

import com.jfinal.core.Controller;
import com.jfinal.kit.PropKit;
import com.ywyself.controller.SessManager;
import com.ywyself.ext.kit.YsKit;
import com.ywyself.model.User;
import com.ywyself.service.OptionService;
import com.ywyself.service.UserService;

/**
 * 数据加载
 * @author admin
 * @date 2017年10月17日 上午9:53:53
 */
public class DataLoad {

	/**
	 * 重新加载网站的基本信息
	 * 
	 * @return true|加载成功
	 */
	public static YsKit loadSiteConfig() {
		YsKit ret = OptionService.EXC.getAll();
		if (ret.isOk()) {
			DataPool.setCfgMap(null);
			DataPool.setCfgMap(ret.getData());
			ret.removeData();
			return ret;
		} else {
			return ret;
		}
	}

	/**
	 * 加载少量必要配置，随后可用PropKit.get(...)获取值
	 * 
	 * @return
	 */
	public static YsKit loadPropKit() {
		// 数据库配置文件
		PropKit.use("config.txt");
		// 保存时的键的值对应到数据库中的键
		PropKit.use("siteConfigKV.txt");
		// 每页数据量
		DataPool.pageSize = PropKit.getInt("pageSize");
		return YsKit.ok().msg("properties加载完成");
	}

	/**
	 * 重新缓存user信息
	 * 
	 * @param uid
	 *            用户id
	 * @return
	 */
	public static YsKit loadUser(long uid, Controller ctl) {
		YsKit ret = UserService.EXC.getById(uid);
		if (ret.isOk()) {
			User user = ret.getData();
			SessManager.saveSession(ctl, user);
			return ret;
		} else {
			return ret;
		}
	}

}
